#ifndef _MAP_LOADER_H_
#define _MAP_LOADER_H_

#ifdef _WIN32
#pragma once
#endif

/**
 * 26.3.12 - Steven Hartin - Separated functionality of loading a map into two
 *  separate files to stop dependencies.
 */

#include <vector>
#include <stdio.h>
#include <stdlib.h>
#include <ctime>

#include "map.h"
#include "filereader.h"
#include "constants.h"
#include "utils.h"

#include "find_entities.h"

#include "entity.h"

class CTile;
class CPickup;

using std::vector;
using utils::PARAM;
using utils::TYPE_VALUE;

typedef CTile *TILE;
typedef vector<CTile*> ROW;
typedef vector<ROW> FLOOR;
typedef vector<ROW> WIDTHCOLUMN;
typedef vector<ROW> DEPTHCOLUMN;
typedef vector<FLOOR> MAP;

class CMapLoader
{
public:
    CMap *loadMap(string filePath, bool bDemo=false);
    void reloadMap(CMap *pMap);
};

#endif